/**
 1.File类的基本概念
 File类：表示文件和目录路径名的抽象表示形式。
 File类可以实现文件的创建，删除，重命名，得到路径，创建时间等等，是
 唯一与文件本身有关的操作类
 
 2.File类的操作方法
 	1.public staitc final String separator	便是路径分隔符"\"
 	2.public File(String pathname) 			构造File类实例，要传入路径
 	3.public boolean createNewFile() 		创建新文件
 	4.public boolean delete() 				删除文件
 	5.public boolean isDirectory() 			判断给定的路径是否是文件夹
 
 	6.public boolean isFile()				判断给定的路径是否是文件
 	7.public String[] list()				列出文件夹中的文件
 	8.public File[] listFiles()				列出文件夹中的所有文件
 	9.public boolean mkdir()				创建新的文件夹
   10.public boolean renameTo(File dest)	为文件重命名
   11.public long length()					返回文件大小
   12.String getpath()						路径名字符串
 

 */
/*
package com.leo.第八章_文件与IO;

import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;

public class U8_L1_文件与IO {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		//1. public staitc final String separator	便是路径分隔符"\"
		//2. File(String pathname) 			构造File类实例，要传入路径
		//File f=new File("E:\\eclipse-workspace\\text.txt");
//		File f=new File("E:"+File.separator+"eclipse-workspace"+File.separator+"test.txt");
//		if(!f.exists()) {
//			try {
//				
		//3.public boolean createNewFile() 		创建新文件
//				f.createNewFile();
//				System.out.println("1-3.创建文件成功! "+f.toString());
//			} catch (IOException e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			}
//		}else {
//			System.out.println("文件已经存在！");
//		}
//		
		//4. public boolean delete() 				删除文件
//		if(f.exists()) {
//			
//			//删除文件
//			f.delete();
//			System.out.println("4.删除文件成功! "+f.toString());
//		}else {
//			System.out.println("文件不存在！");
//		}
//		
//		//5.public boolean isDirectory() 			判断给定的路径是否是文件夹
//		File f5=new File("E:\\eclipse-workspace\\directory");
//		boolean f5_res_mkdir=f5.exists()?f5.mkdir():f5==null;
//		System.out.println("5.文件夹创建状态： "+f5.isDirectory()+" "+f5.toString());
//		boolean res=f5.exists()?f5.delete():f5==null;
//		String f5_res_str_delete= res!=true?"删除成功":"删除失败";
//		System.out.println("  "+f5_res_str_delete);
//		
//		
//		//6.public boolean isFile()	
//		File f6=new File("E:\\eclipse-workspace\\test6.mp3");
//		try {
//			f6.createNewFile();
//		} catch (IOException e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
//		Boolean f6_res_isFile=f6.isFile();
//		System.out.println("6.文件是否存在: "+f6_res_isFile);
//		
		//7.public String[] list()				列出文件夹中的文件
//		File f7_dir=new File("E:\\eclipse-workspace\\test");
//		f7_dir.mkdir();
//		String res=f7_dir.exists()==true?"文件夹创建成功":"文件不存在";
//		System.out.println(res);
//		File []f7_files=null;
//		int count=0;
//		if(f7_files==null) {
//			f7_files=new File[10];
//			for(int i=0;i<10;i++) {
//				f7_files[i]= new File("E:\\eclipse-workspace\\test\\"+i+".mp3");
//				try {
//					if(!f7_files[i].exists()) {
//						f7_files[i].createNewFile();
//						count++;
//					}
//				} catch (IOException e) {
//					// TODO Auto-generated catch block
//					e.printStackTrace();
//				}
//				System.out.println(f7_files[i].toString());		
//				}	
//		}
//		if(f7_files[f7_files.length-1]!=null) {
//			int newlen=f7_files.length+3;
//			f7_files=Arrays.copyOf(f7_files, newlen);
//		}
//		
//		
//		System.out.println(Arrays.toString(f7_files));
		
//		System.out.println(Arrays.toString(f7_dir.list()));
//		
		//8.public File[] listFiles()				列出文件夹中的所有文件
		//9.public boolean mkdir()				创建新的文件夹
		//10.public boolean renameTo(File dest)	为文件重命名
		//12.String getpath()						路径名字符串
//		System.out.println(Arrays.toString(f7_dir.listFiles()));
//		
//		
//		for(File file:f7_files) {
//			System.out.println("-----------"+(count--)+"----------");
//			System.out.println("文件长度=" +file.length());
//			System.out.println("文件名字=" +file.getName());
//			System.out.println("文件位置=" +file.getAbsolutePath());
//			System.out.println("相对路径=" +file.getPath());
//			System.out.println("文件可读=" +file.canRead());
//			System.out.println("文件可写=" +file.canWrite());
//			System.out.println("文件隐藏=" +file.isHidden());
//			
//			Date date=new Date(file.lastModified());
//			SimpleDateFormat df=new SimpleDateFormat("YYYY-MM-dd-HH:mm:ss");
//			System.out.println("修改时间=" +df.format(file.lastModified()));	
//		}
//		f7_files[10]=new File("E:\\eclipse-workspace\\test\\10.mp3");
//		if (!f7_files[10].isFile()) {
//			f7_files[0].renameTo(new File("E:\\eclipse-workspace\\test\\10.mp3"));
//		}
//		System.arraycopy(f7_files, 1, f7_files, 0, 10);
//		System.out.println(Arrays.toString(f7_files));

		//8.public File[] listFiles()				列出文件夹中的所有文件
//		File f8=new File("E:\\eclipse-workspace\\test");
		//匿名版  接口是FilenameFileter 
//		File[] files=f8.listFiles(new FilenameFilter() {
//			
//
//			@Override
//			public boolean accept(File dir, String name) {
//				// TODO Auto-generated method stub
//				//System.out.println(name);
//				System.out.println(name.endsWith(".mp3"));
//				return name.endsWith(".mp3");
//			}
//		});
//		for(File f:files) {
//			System.out.println(f);
//		}
		//lambda版 接口是FilenameFileter 
		//11.public long length()	
//		File[] files=f8.listFiles((dir,name)->name.endsWith(".txt"));
//		for(File f:files) {
//			System.out.println(f.getName()+" "+f.length()+"B 总文件数"+files.length);
//		}
		
		//12.找文件  思路是 文件夹就递归 文件就找后缀名 配正则 很快
//		findFile(new File("E:\\"),".mp3" );
//			 
//	}
//	
//	private static void findFile(File target,String ext) {
//		if (target==null)return ;
//		if(target.isDirectory()) {
//			File[] files=target.listFiles();
//			if(files!=null) {
//				for(File f:files) {
//					findFile(f,ext);
//				}
//			}
//		}else {
//			String name=target.getName().toLowerCase();
//			if(name.endsWith(ext)) {
//				System.out.println(target.getAbsolutePath()+"	文件个数:"+name.length());
//			}
//		}
//		
//}
*/